<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/proyecto/clases/autoload.inc.php';
if (Zen::IniciarSesion()) {

    $debug = 0;
    $extra='...';
     if ($_POST['forma_pago'] == 'cheque') 
    {
    $_cheques = $_POST['cheques'];
    $arreglo = array();

    foreach ($_cheques as $_val) {
        $temp = preg_replace("/[^0-9a-zA-Z]/i", "", $_val['name']);
        $arreglo[$temp][] = $_val['value'];
    }

    foreach ($arreglo as $key => $value) {
        //la magia!
        $$key = $value;
    }
}

    /* RECUPERAR DATOS ENVIADO POR POST  */

    $db = Zen::Db($debug);

    $tabla = 'pagos';
    $record = array();

    /*  INICIO  DATOS MAESTRO */
    $record["fp_nombre"] = $_POST['forma_pago']; //2
    $record["ot_id"] = $_POST['ot']; //4
    $record["pag_fecha_pago"] = date('Y-m-d'); //5
    $record["pag_obs_dscto"] = '....'; //6
    $record["usu_rut"] = $_SESSION['rut_usuario']; //7

    //calculado
    $record["pag_valor_a_pagar"] = $db->GetOne("SELECT sum(exot_valor_contraste_pac+exot_valor_examen_pac) as valores from  examenes_ot as exot  where exot.ot_id=?",
        array($_POST['ot']));


    if (isset($_POST['valor_descuento'])) {
        $record["pag_valor_dscto"] = $_POST['valor_descuento'];
    } else {
        $record["pag_valor_dscto"] = 0;
    }


    $record["pag_valor_pagado"] = $_POST['valor_pagado']; //5

    $record["pag_numero_boleta"] = $_POST['boleta']; //5

    $record["pag_condescuento"] = (bool)$_POST['estadodescuento']; //5

    /*  FIN  DATOS MAESTRO */


    //    INICIAR LA TRANSACCION DE DATOS SEGURA
    $db->StartTrans();
    $resp = $db->AutoExecute($tabla, $record, 'INSERT');
    $id_maestro = $db->GenId("pagos_pag_id_seq") - 1;
    $ot = OrdenTrabajo::getInstancia($_POST['ot'], false);
    
    if(!$ot->pag_id)
    {
        $ot->pag_id = $id_maestro;
    }
    else{
        $extra='Ya se ha registrado un pago para esta orden de trabajo.';
        $db->FailTrans(); //rollback!
    }
    
//echo 'idmaster:'.$id_maestro;

    if ($_POST['forma_pago'] == 'cheque') 
    {

        /* GUARDAR CHEUES UNO POR UNO */
        $cont = 0;
        $tabla2 = 'cheques';

        foreach ($elem2 as $k => $val) 
        {
            $record2 = array();

            $record2["pla_nombre"] = $elem2[$cont];
            $record2["ban_nombre"] = $elem1[$cont];
            $record2["pag_id"] = $id_maestro;
            $record2["che_numero"] = $elem4[$cont];
            $record2["che_fecha_emision"] = $elem5[$cont];
            $record2["che_plazo"] = $elem6[$cont];
            $record2["che_valor"] = $elem7[$cont];
            $record2["che_obs"] = $elem9[$cont];
            $record2["che_emisor_rut"] = $elem3[$cont];
            $record2["che_emisor_nombre"] = $elem8[$cont];

            $db->AutoExecute($tabla2, $record2, 'INSERT');

            $cont++;
        }
        /*  FIN DATOS EXAMENES */
    }


    $acusete = $db->HasFailedTrans();
    
    
    if ($acusete) //si hay errores sql deshacer todos los cambios!

    {
        $db->FailTrans(); //rollback!
    }
    $db->CompleteTrans(); //TERMINAR LA TRANSACCION DE DATOS SEGURA

    $json = new Services_JSON();
    if (!$acusete) {
        $datos = array('error' => 'ok');
        $salida = $json->encode($datos);
        echo $salida;
    } else {
        $e = ADODB_Pear_Error();
        $datos["detalles"] = $e->message.$extra;
        $datos["error"] = 'mal';
        $salida = $json->encode($datos);
        echo $salida;
    }

?>
<?php

} else {
    Zen::LogoutModulo();
}

?> 
